package top.rainf.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import top.rainf.service.IAdminInfoService;
import top.rainf.support.Result;
import top.rainf.domain.vo.AdminInfo;

import java.util.List;

/**
 * @author 星环
 * @date Wed May 17 16:54:38 CST 2023
 * @description 管理员信息的控制器类 由本人的生成器自动生成~
 */
@RestController
@RequestMapping("/adminInfo")
public class AdminInfoController {
    @Autowired
    IAdminInfoService adminInfoService;
    /**
    * 获取全部管理员信息的列表
    * @return 返回是否获取成功~
    */
    @RequestMapping("/list")
    public Result list(){
        List<AdminInfo> list = adminInfoService.getAdminInfoList();
        if(list == null){
            return Result.fail();
        }
        return Result.success().addObj("list",list);
    }

    /**
    * 根据id获取一个管理员信息
    * @return 返回是否获取成功~
    */
    @RequestMapping("/one")
    public Result getOneAdminInfo(int id){
        AdminInfo adminInfo = adminInfoService.getOneById(id);
        if(adminInfo == null){
                    return Result.fail();
        }
        return Result.success().addObj("data",adminInfo);
    }
    /**
    * 根据id删除一个管理员信息
    ---------------------------
    * @param id 要删除的管理员信息的id
    * @return 返回是否获取成功~
    */
    @RequestMapping("/deleteById")
    public Result deleteById(int id){
        boolean suc = adminInfoService.deleteOneById(id);
        return suc ? Result.success() : Result.fail();
    }

    /**
     * 删除多个管理员信息，emm，在哪能用到呢？
     * @param idList 要删除的管理员id列表
     * @return 删除成功与否
     */
    @RequestMapping("/deleteByIds")
    public Result deleteByIds(List<Integer> idList){
        //这不讲究的起名方式
        boolean suc = adminInfoService.deleteAll(idList);
        return suc ? Result.success() : Result.fail();
    }

    /**
     * 更新管理员，为什么没有自动生成注释呢？
     * @param adminInfo
     * @return
     */
    @RequestMapping("/update")
    public Result update(AdminInfo adminInfo){
        boolean suc = adminInfoService.updateById(adminInfo);
        return suc ? Result.success() : Result.fail();
    }


}
